Emerging services, such as multimedia transmission and virtual private networks, require careful allocation of resources in an Internet Protocol (IP) network. To allocate sufficient resources for such services, service providers need to know the bounds for supporting offered traffic. A service level agreement (SLA) between a customer and a service provider specifies these bounds, which constitute a traffic profile. Usually, the traffic profile takes the form of several token-bucket parameters (e.g., committed information rate (CIR) and peak information rate (PIR)). Traffic that conforms to the bounds, referred to as in-profile traffic, must be serviced by the network according to the desired quality of service (QoS) specified in the SLA, whereas any excess traffic, referred to as out-of-profile traffic, is forwarded without any guarantees.
In general, the enforcement of an SLA occurs at the interface between different network domains. An edge router meters and marks incoming traffic to ensure that the traffic conforms to the traffic profile. Congestion control mechanisms inside a network domain use the result of the marking mechanism to determine which packets to drop during congestion. The metering mechanism is typically a variant of a token-bucket algorithm. For example, a two-color token bucket marks in-profile traffic as “green” and out-of-profile traffic as “yellow”. As another example, a three-color token bucket marks in-profile traffic as “green”, some out-of-profile traffic as “yellow”, and other out-of-profile traffic as “red” according to a boundary specified in the SLA. Routers forward yellow traffic with a higher drop-precedence than green traffic. Routers can treat red traffic with a higher drop-precedence than yellow traffic or discard such traffic immediately.
Current marking mechanisms that enforce an SLA, however, focus on the arrival rate and burst size of incoming streams, and are typically unaware of any relative importance among the packets of a given traffic stream. Other existing marking mechanisms focus on relative importance among the packets, but cannot control the amount of admitted traffic into the network and hence are unable to enforce an SLA. Notwithstanding, various types of applications requested by customers inherently employ packet-level priority and produce traffic streams in which different types or classes of packets have different levels of priority in order to achieve a desired level of quality of service. One example is video traffic. MPEG-2 video, for example, employs three classes of packets: I-packets, P-packets, and B-packets. More video frames depend upon an I-packet than upon a P-packet, and more video frames depend upon a P-packet than upon a B-packet.
Inherent to this order of dependency is an order of priority. In general, losing a high-priority packet has a greater adverse effect on quality than losing a low-priority packet. As a result, discarding an I-packet during congestion, for example, causes greater quality degradation than discarding a P-packet, and discarding a P-packet causes greater quality degradation than discarding a B-packet.
Other types of applications may similarly employ priority among packets. For voice traffic, as an example, dropping a packet during a silent interval between words is better than dropping a packet during a spoken word. As another example, in a virtual private network (VPN), a traffic stream corresponding to a business transaction may be considerably more important than a traffic stream associated with browsing the Internet.
Existing marking mechanisms that enforce an SLA, however, do not consider the “priority” or importance of individual packets, but mark packets based on the traffic profile only. Thus, despite varying levels of importance, all types of packets of a particular application can conceivably be out-of-profile, receive the same drop-precedence characteristics, and consequently be discarded irrespective of their importance. Other existing marking mechanisms may mark packets based on their importance only, but in this case have no control on the amount of admitted traffic into the network. When there is network congestion, too many packets from an application can be dropped, which can violate an SLA even though the dropped packets are low-priority. Therefore, there is a need for a marking mechanism that can maintain, on average, conformance to a traffic profile, but that can also be sufficiently flexible to enable delivery of high-priority packets even during out-of-profile traffic conditions.